package com.hspedu.homework;

import java.util.TreeSet;

/**
 * 下面代码运行会不会抛出异常, 并从源码层面说明原因[源码阅读, 接口编程, 动态绑定]
 * @author enomi
 * @version 1.0
 */
public class Homework05 {
    public static void main(String[] args) {
        //分析:
        //add方法, 因为TreeSet() 构造器没有传入Comparator接口的匿名内部类
        //所以在底层TreeMap 的 Comparable<? super K> k = (Comparable<? super K>) key;
        //即把 Person 转换成 Comparable 类型, Person类没有实现Comparable接口, 所以会出现异常
        TreeSet treeSet = new TreeSet();
        treeSet.add(new Person());//ClassCastException
        treeSet.add(new Person());
        treeSet.add(new Person());
        System.out.println(treeSet);//重写的compareTo方法里面返回的是0,所以只添加了一个元素进去
    }
}

class Person implements Comparable{
    @Override
    public int compareTo(Object o) {
        return 0;
    }
}